<?php

namespace app\admin\model;

use think\Model;

/**
 * 客户模型
 */
class Customer extends Model
{
    // 表名
    protected $name = 'customer';
    
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';
    
    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    
    // 追加属性
    protected $append = [
        'status_text'
    ];
    
    // 状态映射
    public static $statusList = [
        'normal' => '正常',
        'hidden' => '隐藏'
    ];
    
    public function getStatusTextAttr($value, $data)
    {
        return self::$statusList[$data['status']] ?? '';
    }
    
    /**
     * 获取客户列表
     * @param array $params 查询参数
     * @return \think\Paginator
     */
    public static function getList($params = [])
    {
        $query = self::order('id', 'desc');
        
        // 名称搜索
        if (isset($params['name']) && $params['name'] !== '') {
            $query->where('name', 'like', '%' . $params['name'] . '%');
        }
        
        // 联系方式搜索
        if (isset($params['contact']) && $params['contact'] !== '') {
            $query->where('contact', 'like', '%' . $params['contact'] . '%');
        }
        
        // 标签搜索
        if (isset($params['tags']) && $params['tags'] !== '') {
            $query->where('tags', 'like', '%' . $params['tags'] . '%');
        }
        
        // 状态搜索
        if (isset($params['status']) && $params['status'] !== '') {
            $query->where('status', $params['status']);
        }
        
        // 按页数返回结果
        return $query->paginate($params['limit'] ?? 10);
    }
} 